// class Solution {
// public:
//     vector<int> twoSum(vector<int>& nums, int target) {
//         int sz =nums.size();
//         //暴力枚举
//         for(int i=0;i<sz-1;i++)
//         {
//             for(int j=i+1;j<sz;j++)
//             {
//                 if(nums[i]+nums[j]==target) return {i,j};
//             }
//         }
//         return {};
//     }
// };
//法二
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
       unordered_map<int,int> hash;
       for(int i=0;i<nums.size();i++)
       {
            int tmp=target-nums[i];
            auto it=hash.find(tmp);
            if(it!=hash.end())
            {
                return {it->second,i};
            }
            hash[nums[i]]=i;
       }
       return {};
    }
};
